Forward merge into dev. Preparing new release - #1473
Merged
Conversation
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
…-aligned verdict logic and table output
Fix formatting in Test-Assessment.41034.ps1.
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
…ving test output formatting
…utbound, and availability defense planes (#1442)
…into astaykov/preview-report
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
…) is enforced via Intune (#1461)
…e Units) is provisioned in the tenant (#1454) Looks good
…chart and add it to src-current (#1466) This PR - Adds `Total agents` count in overview page using logic presented in #1456 (comment) - Adds `Active users` count in overview page using logic presented in #1456 (comment) - Refactored Azure Network Security circle chart w.r.t. updated spec 27023 - Updated src-current to include Azure Network Security chart.
Contributor
There was a problem hiding this comment.
Pull request overview
This PR prepares the next release by expanding the assessment scope (pillars) and report outputs (default + classic), while adding a new “current”/next-gen report UI and strengthening privacy by sanitizing error details persisted into results and logs.
Changes:
- Adds a new Vite build + React app variant under
src/report/src-curent/and wires it into build scripts/templates. - Updates PowerShell reporting to generate two HTML reports (default + classic) and introduces error/result sanitization to reduce secret leakage risk.
- Adds/updates assessment tests (new SecOps/Network tests, metadata updates, and removal of an obsolete test).
Reviewed changes
Copilot reviewed 121 out of 126 changed files in this pull request and generated 11 comments.
Show a summary per file
| File | Description |
|---|---|
| src/report/vite.config.current.ts | Adds Vite config for the “current” report template build. |
| src/report/tailwind.config.js | Expands Tailwind content paths to include new HTML + src-curent. |
| src/report/src/config/report-data.ts | Extends report schema (AgentOverview, DeviceSummary) and seeds new fields in sample data. |
| src/report/src/components/overview/swg-defense-layers.tsx | UI tweaks for opacity math and badge sizing. |
| src/report/src/components/overview/azure-netsec-planes.tsx | Adds classic-template Azure network security “planes” visualization. |
| src/report/src/components/nivo/sankey.tsx | Sanitizes/filters Sankey topology inputs to avoid invalid links/nodes. |
| src/report/src/components/layouts/Footer.tsx | Shows version + date/time in footer for classic template. |
| src/report/src-curent/vite-env.d.ts | Adds global.basename typing for the “current” app. |
| src/report/src-curent/types/table.d.ts | Adds TanStack column meta augmentation (label). |
| src/report/src-curent/Router.tsx | Introduces hash router for the “current” app with basename. |
| src/report/src-curent/pages/SecOps.tsx | Adds SecOps pillar page for the “current” UI. |
| src/report/src-curent/pages/NoMatch.tsx | Adds 404 page for the “current” UI. |
| src/report/src-curent/pages/Network.tsx | Adds Network pillar page for the “current” UI. |
| src/report/src-curent/pages/Infrastructure.tsx | Adds Infrastructure pillar page for the “current” UI. |
| src/report/src-curent/pages/Devices.tsx | Adds Devices pillar page with tabs + insights section. |
| src/report/src-curent/pages/Data.tsx | Adds Data pillar page for the “current” UI. |
| src/report/src-curent/pages/Apps.tsx | Adds Apps placeholder page (currently “coming soon”). |
| src/report/src-curent/pages/AI.tsx | Adds AI pillar page for the “current” UI. |
| src/report/src-curent/main.tsx | Boots the “current” React app. |
| src/report/src-curent/lib/utils.ts | Adds cn() helper (clsx + tailwind-merge). |
| src/report/src-curent/lib/format-utils.ts | Adds numeric formatting helpers + metric descriptions. |
| src/report/src-curent/index.css | Adds theme variables + Nivo tooltip styling and base Tailwind layers. |
| src/report/src-curent/hooks/useTheme.tsx | Adds hook to access theme context. |
| src/report/src-curent/hooks/useDemoToast.tsx | Adds demo toast behavior based on reportData.IsDemo. |
| src/report/src-curent/contexts/ThemeContext.tsx | Adds theme provider with storage + system-theme tracking. |
| src/report/src-curent/config/menu.ts | Adds menu model and filters menu items by available pillar totals. |
| src/report/src-curent/config/app.ts | Adds basic app metadata (name + GitHub URL). |
| src/report/src-curent/components/ui/tooltip.tsx | Adds tooltip component wrapper. |
| src/report/src-curent/components/ui/tabs.tsx | Adds tabs component wrapper. |
| src/report/src-curent/components/ui/table.tsx | Adds table component wrappers. |
| src/report/src-curent/components/ui/switch.tsx | Adds switch component wrapper. |
| src/report/src-curent/components/ui/sonner.tsx | Adds themed toast provider wrapper. |
| src/report/src-curent/components/ui/sheet.tsx | Adds sheet (drawer) component with optional maximize support. |
| src/report/src-curent/components/ui/separator.tsx | Adds separator wrapper. |
| src/report/src-curent/components/ui/scroll-area.tsx | Adds scroll-area wrapper. |
| src/report/src-curent/components/ui/label.tsx | Adds label wrapper. |
| src/report/src-curent/components/ui/input.tsx | Adds input wrapper. |
| src/report/src-curent/components/ui/dropdown-menu.tsx | Adds dropdown menu wrappers. |
| src/report/src-curent/components/ui/card.tsx | Adds card wrappers. |
| src/report/src-curent/components/ui/button.tsx | Adds button wrappers. |
| src/report/src-curent/components/ui/badge.tsx | Adds badge wrapper and variants (incl. success/warning). |
| src/report/src-curent/components/ui/avatar.tsx | Adds avatar wrapper. |
| src/report/src-curent/components/ui/accordion.tsx | Adds accordion wrapper. |
| src/report/src-curent/components/test-table/item-sheet.tsx | Adds placeholder item sheet component. |
| src/report/src-curent/components/test-table/data-icons.tsx | Defines status/impact icon metadata for table rendering. |
| src/report/src-curent/components/test-table/columns.tsx | Defines TanStack table columns for test results. |
| src/report/src-curent/components/status-icon.tsx | Adds status badge renderer for tests. |
| src/report/src-curent/components/page-header.tsx | Adds page header components for “current” UI. |
| src/report/src-curent/components/overview/mobile-sankey.tsx | Adds mobile Sankey wrapper for “current” UI. |
| src/report/src-curent/components/overview/desktop-devices-sankey.tsx | Adds desktop Sankey wrapper for “current” UI. |
| src/report/src-curent/components/overview/caDevice-sankey.tsx | Adds CA device Sankey wrapper for “current” UI. |
| src/report/src-curent/components/overview/ca-sankey.tsx | Adds CA Sankey wrapper for “current” UI. |
| src/report/src-curent/components/overview/azure-netsec-planes.tsx | Adds “current” UI Azure network security planes component. |
| src/report/src-curent/components/overview/authMethod-sankey.tsx | Adds auth method Sankey wrapper for “current” UI. |
| src/report/src-curent/components/nivo/sankey.tsx | Adds “current” UI Sankey component with input sanitization + theming. |
| src/report/src-curent/components/mode-toggle.tsx | Adds theme mode toggle for “current” UI. |
| src/report/src-curent/components/logo.tsx | Adds app logo component for header branding. |
| src/report/src-curent/components/layouts/Header.tsx | Adds “current” UI header with desktop + mobile navigation. |
| src/report/src-curent/components/layouts/Footer.tsx | Adds “current” UI footer with resources/support links and version/date. |
| src/report/src-curent/components/layouts/AppLayout.tsx | Adds “current” UI layout wrapper. |
| src/report/src-curent/components/icons.tsx | Adds icon set (logo + GitHub). |
| src/report/src-curent/assets/react.svg | Adds React asset (likely template residue / placeholder). |
| src/report/src-curent/App.tsx | Wires router + theme provider + toaster for “current” UI. |
| src/report/src-curent/App.css | Adds default Vite template CSS (likely template residue / placeholder). |
| src/report/report-build.ps1 | Reworks build script to build/copy both templates via a parameter. |
| src/report/README.md | Updates report dev/build instructions for classic vs current templates. |
| src/report/package.json | Updates scripts to use PowerShell build orchestrator + adds dev/build current. |
| src/report/index.current.html | Adds HTML entrypoint for “current” template build. |
| src/powershell/tests/Test-Assessment.50001.ps1 | Adds missing test metadata (ImplementationCost, UserImpact). |
| src/powershell/tests/Test-Assessment.41215.ps1 | Adds new test for Security Copilot capacity via Azure Resource Graph. |
| src/powershell/tests/Test-Assessment.41215.md | Adds markdown narrative for test 41215. |
| src/powershell/tests/Test-Assessment.41211.md | Updates markdown narrative for test 41211. |
| src/powershell/tests/Test-Assessment.41209.md | Updates markdown narrative for test 41209. |
| src/powershell/tests/Test-Assessment.41116.ps1 | Adds new test validating M365 Defender advanced hunting EmailEvents availability. |
| src/powershell/tests/Test-Assessment.41116.md | Adds markdown narrative for test 41116. |
| src/powershell/tests/Test-Assessment.41114.md | Updates markdown narrative for test 41114. |
| src/powershell/tests/Test-Assessment.41052.md | Updates markdown narrative for test 41052. |
| src/powershell/tests/Test-Assessment.41034.md | Updates markdown narrative for test 41034. |
| src/powershell/tests/Test-Assessment.41033.md | Updates markdown narrative for test 41033. |
| src/powershell/tests/Test-Assessment.35037.ps1 | Removes obsolete audit logging test implementation. |
| src/powershell/tests/Test-Assessment.35037.md | Removes obsolete audit logging test narrative. |
| src/powershell/tests/Test-Assessment.27024.ps1 | Adds new test validating Front Door WAF HTTP DDoS ruleset enablement. |
| src/powershell/tests/Test-Assessment.27024.md | Adds markdown narrative for test 27024. |
| src/powershell/tests/Test-Assessment.25375.md | Updates markdown narrative for test 25375. |
| src/powershell/public/Invoke-ZtAssessment.ps1 | Adjusts pillar/preview semantics and emits two HTML reports (default + classic). |
| src/powershell/private/tests/Write-ZtTestError.ps1 | Uses safe error record + safe formatting for unexpected test errors. |
| src/powershell/private/tests/New-ZtSafeErrorRecord.ps1 | Adds helper to clone/sanitize error records (remove TargetObject). |
| src/powershell/private/tests/Invoke-ZtTests.ps1 | Updates stable pillar filtering logic (now includes more pillars by default). |
| src/powershell/private/tests/Invoke-ZtTest.ps1 | Uses safe error record + safe formatting for unexpected test errors. |
| src/powershell/private/tests/Get-ZtSafeErrorMessage.ps1 | Adds allow-listed safe error summary extraction (status/code/IDs/URL sans query). |
| src/powershell/private/tests/Format-ZtTestErrorDetail.ps1 | Adds safe markdown formatting for unexpected test errors. |
| src/powershell/private/tests-shared/Get-SentinelWorkspaceData.ps1 | Adds OnboardingError flag for Sentinel onboarding checks. |
| src/powershell/private/tenantinfo/Invoke-ZtTenantInfo.ps1 | Always collects agent overview and device overview earlier in Devices pillar. |
| src/powershell/private/tenantinfo/ai/Add-ZtAgentOverview.ps1 | Adds tenant-info collection for agent inventory + recent activity. |
| src/powershell/private/core/Protect-ZtReportText.ps1 | Adds defense-in-depth redaction of common credential patterns in report text. |
| src/powershell/private/core/Get-ZtAssessmentResults.ps1 | Updates summaries for additional pillars and clarifies preview-only filtering. |
| src/powershell/private/core/Get-HtmlReport.ps1 | Adds optional template path + stronger temp-path handling and marker validation. |
| src/powershell/private/core/Add-ZtTestResultDetail.ps1 | Adds report-text sanitization at persistence boundary. |
| src/powershell/doc/readme.md | Updates docs for default pillar set + dual report outputs + preview semantics. |
| README.md | Updates top-level README to reflect new default pillars behavior. |
| code-tests/test-assessments/Test-Assessment.41215.Tests.ps1 | Adds Pester coverage for new test 41215 behavior. |
| code-tests/commands/Invoke-ZtTenantInfo.Tests.ps1 | Adds Pester coverage for updated tenant-info collection behavior. |
| code-tests/commands/ErrorSanitization.Tests.ps1 | Adds Pester coverage ensuring secrets are redacted/sanitized in errors/results/logs. |
| code-tests/commands/Add-ZtAgentOverview.Tests.ps1 | Adds Pester coverage for new agent overview collection. |
Comment on lines
+10
to
+22
| const date = new Date(dateString); | ||
| const dateStr = date.toLocaleDateString('en-US', { | ||
| year: 'numeric', | ||
| month: 'long', | ||
| day: 'numeric' | ||
| }); | ||
| const timeStr = date.toLocaleTimeString('en-US', { | ||
| hour: '2-digit', | ||
| minute: '2-digit', | ||
| second: '2-digit', | ||
| hour12: false | ||
| }); | ||
| return `${dateStr}, ${timeStr} UTC`; |
Comment on lines
+10
to
+22
| const date = new Date(dateString); | ||
| const dateStr = date.toLocaleDateString('en-US', { | ||
| year: 'numeric', | ||
| month: 'long', | ||
| day: 'numeric' | ||
| }); | ||
| const timeStr = date.toLocaleTimeString('en-US', { | ||
| hour: '2-digit', | ||
| minute: '2-digit', | ||
| second: '2-digit', | ||
| hour12: false | ||
| }); | ||
| return `${dateStr}, ${timeStr} UTC`; |
|
|
||
| import { mainMenu } from "@/config/menu"; | ||
| import { ChevronDownIcon, ViewVerticalIcon } from "@radix-ui/react-icons"; | ||
| import { ScrollArea } from "@radix-ui/react-scroll-area"; |
| export function Header() { | ||
| const [open, setOpen] = useState(false) | ||
| const location = useLocation(); | ||
| console.log(reportData); |
Comment on lines
+6
to
+9
| <path fill-rule="evenodd" clip-rule="evenodd" fill="#F35123" d="M0 0h7v7h-7z" /> | ||
| <path fill-rule="evenodd" clip-rule="evenodd" fill="#01A4EF" d="M0 9h7v7h-7z" /> | ||
| <path fill-rule="evenodd" clip-rule="evenodd" fill="#7FBA00" d="M9 0h7v7h-7z" /> | ||
| <path fill-rule="evenodd" clip-rule="evenodd" fill="#FFB901" d="M9 9h7v7h-7z" /> |
Comment on lines
+16
to
+20
| Category = 'Azure Network Security', | ||
| ImplementationCost = 'Low', | ||
| MinimumLicense = ('Consumption-based: Azure WAF on Azure Front Door Premium'), | ||
| Service = ('Azure'), | ||
| Pillar = 'Network', |
Comment on lines
+1
to
+3
| import Balance from "react-wrap-balancer" | ||
|
|
||
| import { cn } from "@/lib/utils" |
Collaborator
Author
|
Ignore typescript finding as this is not live typescript site but a pre-compiled html out of the typescript site. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Prepare new release.